近日開發新的系統,即將要系統上線,程式碼需要做系統安全弱點掃描,確保上線後,不會輕易的被駭客攻破,在此期間做了許多的功課,學習如何透過工具掃描,以及排除問題,因此想再做筆記,並分享給有需要的人。
接下來我會分三個步驟分享
第一步,我了解先 OWASP TOP 10 是甚麼?
第二步,我使用開源軟體 SonarQube 進行源碼檢測,找出系統是否有符合 OWASP TOP 10 項目,以及其它弱點。
第三步,參考 SonarQube 檢測後,提供的修正方式,進行修正。
開放網路軟體安全計畫,簡稱 OWASP (Open Web Application Security Project),是一個開放社群、非營利性組織提出的計畫。
而 OWASP TOP 10 為其中一項計劃,此計畫會統計駭客每 3 - 5 年中最常使用的攻擊手法前 10 名,因此只要避開前 10 名,系統相對的就更安全。
攻擊手法前 10 名平均 3 - 5 年會更新一次,也就是說可能會有新的攻擊方式,需要開發者持續關注。
接下來將以 2021 年發布的 OWASP TOP 10 進行說明。
是指使用者權限管理失當,比方說系統一般使用者,不應該看到系統者管理的相關功能,或者是沒有任何權限的管理。
對於網站來說是指資料傳輸未經加密,簡單說就是未使用 TLS 加密連線。
駭客可以透過特定資料形式,改變系統指令,造成系統無法正常執行,甚至可能洩漏重要資訊。
是指設計者撰寫程式時邏輯錯誤,可能造成使用者可以繞過系統檢核,以不合格的條件「申請資料」或「取得優惠」...等。
是指安全性上設定不良,比方說密碼長度、複雜度皆未要求,使用者可以以非常簡短的密碼申請帳號((如:1234),對駭客來說可以非常輕易地竊取該帳號資料。
開發程式不會所有的程式都是自己撰寫的,會使用他人開發的套件貨元件,如果是過舊的元件可能有漏洞,但在新版本的套件或元件上是有修復的,所以建議不要使用過舊的套件或元件。
為了資訊安全,登入系統時,除了帳號密碼驗證外,可能還會做手機驗證。
如果你設計的系統裡面留了一個後門功能,那你的整的系統其實就暴露了相當大的風險,是不完整的,就算其他部分驗證機制在強大,仍是不安全的。
是指系統有做資安記錄及監控,但是沒有人是察看監控及資料紀錄,就算系統有發出警示,也沒有人即時處理或立即的防範,讓駭客可以持續攻破,意味著資安記錄及監控失效。
假設你的系統架構中,有區分內網、外網,其他外網的部分對外防護相當強大,但是外網連線內網的部分,沒有設置防護,駭客是有辦法假裝是外網伺服器發起的請求攻擊內網伺服器的。